package com.ysd.lis.entity.lab;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ysd.lis.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

/**
 * <p>
 * 检验申请主表
 * </p>
 *
 * @author HuiXing
 * @since 2023-12-26 chkDoctor
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("LAB_REQ_MAIN")
public class LabReqMainQuery extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 申请号（条码号）
     */
    @TableField("REQ_NO")
    private String reqNo;

    /**
     * 标本状态编码
     */
    @TableField("STATE")
    private String state;

    /**
     * 标本状态名称
     */
    @TableField("STATE_NA")
    private String stateNa;

    /**
     * 是否计价
     */
    @TableField("IS_CHARGE")
    private BigDecimal isCharge;

    /**
     * 急诊加急标志
     */
    @TableField("IS_URGENT")
    private Integer isUrgent;

    /**
     * 检验目的主键，微生物检验目的主键,普通检验为空
     */
    @TableField("PURPOSE_NO")
    private String purposeNo;

    /**
     * 申请目的(非申请项目),来自HIS申请
     */
    @TableField("REQ_PURPOSE")
    private String reqPurpose;

    /**
     * 检验目的，如肝功，肾功，血糖
     */
    @TableField("TEST_PURPOSE")
    private String testPurpose;

    /**
     * 样本类型编号
     */
    @TableField("SAMPLE_TYPE")
    private String sampleType;

    /**
     * 样本类型名称
     */
    @TableField("SAMPLE_TYPE_NA")
    private String sampleTypeNa;

    /**
     * 申请类型，检验申请，血培养，染色,来自字典
     */
    @TableField("REQ_TYPE")
    private String reqType;

    /**
     * 费别
     */
    @TableField("FEE_TYPE")
    private String feeType;

    /**
     * 病人来源
     */
    @TableField("PAT_TYPE")
    private String patType;

    /**
     * 病人类型名称
     */
    @TableField(exist = false)
    private String patTypeNa;

    /**
     * 病人代号
     */
    @TableField("PAT_NO")
    private String patNo;

    /**
     * 病人姓名
     */
    @TableField("PAT_NA")
    private String patNa;

    /**
     * 病人年龄
     */
    @TableField("SEX")
    private String sex;

    /**
     * 年龄
     */
    @TableField("AGE")
    private Integer age;

    /**
     * 年龄单位
     */
    @TableField("AGE_UNIT")
    private String ageUnit;

    /**
     * 病人生日
     */
    @TableField("BIRTH_DAY")
    private Timestamp birthDay;

    /**
     * 年龄字符串
     */
    @TableField("AGE_STR")
    private String ageStr;

    /**
     * 证件类型
     */
    @TableField("ID_TYPE")
    private String idType;

    /**
     * 证件号码
     */
    @TableField("ID_NO")
    private String idNo;

    /**
     * 病人ID
     */
    @TableField("PAT_ID")
    private String patId;

    /**
     * 社会保障码
     */
    @TableField("SIN")
    private String sin;

    /**
     * 住院次数或门诊就诊序号
     */
    @TableField("VISIT_NO")
    private String visitNo;

    /**
     * 联系电话
     */
    @TableField("TEL_NO")
    private String telNo;

    /**
     * 临床诊断
     */
    @TableField("DIAGNOSE")
    private String diagnose;

    /**
     * 国家
     */
    @TableField("COUNTRY")
    private String country;

    /**
     * 省
     */
    @TableField("PROVINCE")
    private String province;

    /**
     * 市
     */
    @TableField("CITY")
    private String city;

    /**
     * 区
     */
    @TableField("DISTRICT")
    private String district;

    /**
     * 街道
     */
    @TableField("SUBDISTRICT")
    private String subdistrict;

    /**
     * 地址
     */
    @TableField("ADDRESS")
    private String address;

    /**
     * 床号
     */
    @TableField("BED_NO")
    private String bedNo;

    /**
     * 护士员工编号
     */
    @TableField("NURSER")
    private String nurser;

    /**
     * 护士员工名称
     */
    @TableField("NURSER_NA")
    private String nurserNa;

    /**
     * 生理周期:排卵期、卵泡期、黄体期、绝经期、妊娠期
     */
    @TableField("PHY_CYCEL")
    private String phyCycel;

    /**
     * 哺乳期标志: 0:非哺乳期、1:哺乳期
     */
    @TableField("LACTATION")
    private String lactation;

    /**
     * 妊娠期标志: 0:非妊娠期、1:妊娠期
     */
    @TableField("GESTATION")
    private String gestation;

    /**
     * 孕周数
     */
    @TableField("GESTATION_WEEK")
    private String gestationWeek;

    /**
     * 孕次数
     */
    @TableField("GESTATION_TIMES")
    private String gestationTimes;

    /**
     * 孕期:孕早期、孕中期、孕晚期
     */
    @TableField("GESTATION_STAGE")
    private String gestationStage;

    /**
     * 申请病区
     */
    @TableField("REQ_WARD")
    private String reqWard;

    /**
     * 申请科室代号
     */
    @TableField("REQ_DEPT")
    private String reqDept;

    /**
     * 申请科室名称
     */
    @TableField("REQ_DEPT_NA")
    private String reqDeptNa;

    /**
     * 申请医生代号
     */
    @TableField("REQ_DOCTOR")
    private String reqDoctor;

    /**
     * 申请医生名称
     */
    @TableField("REQ_DOCTOR_NA")
    private String reqDoctorNa;

    /**
     * 申请时间
     */
    @TableField("REQ_TIME")
    private Timestamp reqTime;

    /**
     * 是否打印
     */
    @TableField("IS_PRINT")
    private Integer isPrint;

    /**
     * 条码打印人编号
     */
    @TableField("PRINT_DOCTOR")
    private String printDoctor;

    /**
     * 条码打印人名称
     */
    @TableField("PRINTER_NA")
    private String printerNa;

    /**
     * 条码打印时间
     */
    @TableField("PRINT_TIME")
    private Timestamp printTime;

    /**
     * 是否接收
     */
    @TableField("IS_SAMPLING")
    private BigDecimal isSampling;

    /**
     * 采样医生编号
     */
    @TableField("SAMPLING_DOCTOR")
    private String samplingDoctor;

    /**
     * 采样医生名称
     */
    @TableField("SAMPLING_DOCTOR_NA")
    private String samplingDoctorNa;

    /**
     * 采样时间
     */
    @TableField("SAMPLING_TIME")
    private Timestamp samplingTime;

    /**
     * 采样科室编号
     */
    @TableField("SAMPLING_DEPT")
    private String samplingDept;

    /**
     * 采样科室名称
     */
    @TableField("SAMPLING_DEPT_NA")
    private String samplingDeptNa;

    /**
     * 是否签收
     */
    @TableField("IS_SIGN")
    private BigDecimal isSign;

    /**
     * 签收人编号
     */
    @TableField("SIGNER_DOCTOR")
    private String signerDoctor;

    /**
     * 签收人名称
     */
    @TableField("SIGNER_NA")
    private String signerNa;

    /**
     * 签收时间
     */
    @TableField("SIGN_TIME")
    private Timestamp signTime;

    /**
     * 是否取消
     */
    @TableField("IS_CANCEL")
    private Integer isCancel;

    /**
     * 作废人编号
     */
    @TableField("CANCEL_DOCTOR")
    private String cancelDoctor;

    /**
     * 作废人名称
     */
    @TableField("CANCEL_DOCTOR_NA")
    private String cancelDoctorNa;

    /**
     * 作废时间
     */
    @TableField("CANCEL_TIME")
    private Timestamp cancelTime;

    /**
     * 作废原因
     */
    @TableField("CANCEL_REASON")
    private String cancelReason;

    /**
     * 姓名助记码
     */
    @TableField("PAT_PY_NAME")
    private String patPyName;

    /**
     * 条形码
     */
    @TableField("BAR_CODE")
    private String barCode;

    /**
     * 是否绿色通道
     */
    @TableField("IS_MANUAL")
    private BigDecimal isManual;

    /**
     * 备注1
     */
    @TableField("REMARK1")
    private String remark1;

    /**
     * 备注2
     */
    @TableField("REMARK2")
    private String remark2;

    /**
     * 备注3
     */
    @TableField("REMARK3")
    private String remark3;

    /**
     * 备注4
     */
    @TableField("REMARK4")
    private String remark4;
    /**
     * 送检单位编码
     */
    @TableField("INSPECT_COMPANY")
    private String inspectCompany;

    /**
     * 是否财务结算
     */
    @TableField("IS_SETTLE")
    private Integer isSettle;
    /**
     * 是否入库
     */
    @TableField("IS_STORE")
    private Integer isStore;


    @TableField(exist = false)
    private String inspectCompanyName;

    @TableField(exist = false)
    private String feeCode;
    @TableField(exist = false)
    private String feeName;
    @TableField(exist = false)
    private String hisReqId;
    @TableField(exist = false)
    private String batchNo;
    @TableField(exist = false)
    private String startTime;
    @TableField(exist = false)
    private String endTime;
    @TableField(exist = false)
    private String mainInfoId;
    @TableField(exist = false)
    private String displayColor;

    /**
     * 性别
     */
    @TableField(exist = false)
    private String sexNa;
    /**
     * 证件类型
     */
    @TableField(exist = false)
    private String idTypeNa;
    /**
     * 标本：条码打印 30、采样 40、送出 50、送达 60、签收 70 、退回 80 状态值
     */
    @TableField(exist = false)
    private String actStateCode;

    @TableField(exist = false)
    private String sampleNo;

    @TableField(exist = false)
    private String creatorNa;
    @TableField(exist = false)
    private List<LabReqdetailDel> labReqdetailList;
    @TableField(exist = false)
    private List<LabMaininfo> labMaininfoList;


    /**
     * 仓库(一级)
     */
    @TableField(exist = false)
    private String storagePid;
    /**
     * 库位(二级)
     */
    @TableField(exist = false)
    private String storageId;
    /**
     * 所在冰箱
     */
    @TableField(exist = false)
    private String fridgeId;
    /**
     * 所在层
     */
    @TableField(exist = false)
    private String layerId;
    /**
     * 标本盒id
     */
    @TableField(exist = false)
    private String specboxId;

    /**
     * 标本仓位id
     */
    @TableField(exist = false)
    private String specboxOrderId;

    @TableField(exist = false)
    private String orderNumber;

    @TableField(exist = false)
    private String storagePname;

    @TableField(exist = false)
    private String storageName;

    @TableField(exist = false)
    private String samstoSpecboxOrderReqId;

    @TableField(exist = false)
    private BigDecimal status;

    /**
     * 冰箱编码
     */
    @TableField(exist = false)
    private String fridgeCode;
    /**
     * 层级编码
     */
    @TableField(exist = false)
    private String layerCode;
    /**
     * 标本盒编码
     */
    @TableField(exist = false)
    private String specboxCode;

    /**
     * 检验时间
     */
    @TableField(exist = false)
    private Timestamp testTime;
    /**
     * 检验医生
     */
    @TableField(exist = false)
    private String testDoctorNa;

    /**
     * 审核时间
     */
    @TableField(exist = false)
    private Timestamp chkTime;
    /**
     * 审核人
     */
    @TableField(exist = false)
    private String chkDoctorNa;
    /**
     * 报告单元
     */
    @TableField(exist = false)
    private String rptGroup;

    /**
     * 检验时间
     */
    @TableField(exist = false)
    private Timestamp sampleda;


}
